package com.david.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
@RequestMapping("/Hello")
class ConsumerController {
    private final RestTemplate restTemplate;

    public ConsumerController(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    @RequestMapping("/Consumer")
    public String helloWorld(String s) {
        System.out.println("传入的值为：" + s);
        /*
         第一种调用方式 直接调用：不经过注册中心那服务列表，直接访问的servicesupport
         String forObject = new RestTemplate().getForObject("http://localhost:8071/Hello/World?s=" + s, String.class);

         第二种调用方式 //根据服务名 获取服务列表 根据算法选取某个服务 并访问某个服务的网络位置。 不常用
         使用时需要做注入 @Autowired private LoadBalancerClient loadBalancerClient;
         ServiceInstance serviceInstance = loadBalancerClient.choose("EUREKA-SERVICE");
         forObject = new RestTemplate().getForObject("http://" + serviceInstance.getHost() + ":" + serviceInstance.getPort() + "/Hello/World?s=" + s, String.class);
         */
        //第三种调用方式 需要restTemplate注入的方式
        return restTemplate.getForObject("http://EUREKA-SERVICE/Hello/World?s=" + s, String.class);
    }
}